home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Taifun
/
Taifun 080 (1988-11-15)(Ossowski, Stefan)(DE)(PD).zip
/
Taifun 080 (1988-11-15)(Ossowski, Stefan)(DE)(PD).adf
/
Go64
/
Go64.c
< prev
next >
Wrap
C/C++ Source or Header
|
1988-08-14
|
5KB
|
168 lines
/******************************************************************************
********** **********
********** THE REAL EMULATOR (?) **********
********** **********
*******************************************************************************
********** **********
********** Yet another brain-crash by Magic Ceee (ouch, that hurts!) **********
********** **********
******************************************************************************/
#include "intuition/intuition.h"
#include "graphics/gfxbase.h"
struct IntuitionBase *IntuitionBase;
struct GfxBase *GfxBase;
struct Screen *MagicScreen;
struct Window *MagicWindow;
struct RastPort *MagicRast;
struct ViewPort *MagicView;
struct AlertMessage
{
WORD X;
BYTE Y;
char text[58];
BYTE count;
}
texttab[]=
{
80,17," Illegal copy of *** MicroBeastie C-64 Emulator *** ",99,
80,32," Press left mouse button to format your disks. ",0
};
/****************************************************************************/
struct NewScreen ns = {
0,0,640,200,2,0,0,HIRES,CUSTOMSCREEN,NULL,NULL,NULL,NULL };
struct NewWindow nw = {
0,0,640,200,0,0,RAWKEY,SIMPLE_REFRESH|BORDERLESS|ACTIVATE,
NULL,NULL,NULL,NULL,NULL,0,0,0,0,CUSTOMSCREEN };
UWORD Sprite_data[] = { /* Invisible Pointer */
0,0,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0,0 };
char *lies[] = { "Installing 6502 routines...\n",
"Installing Kernel..........\n",
"Checking Interpreter.......\n",
"\nTransforming!\n",
"\nAmiga C-64 Emulator V2.7, designed by Magic Ceee.\n\n" };
/*****************************************************************************/
main()
{
int i;
Write(Output(),lies[4],strlen(lies[4]));
for(i=0;i<=3;Tell_A_Lie(lies[i++]));
OpenStuff();
/****************************************************************************
*** Kick pointer outa sight ***
****************************************************************************/
SetPointer(MagicWindow,&Sprite_data[0],15,15,-7,-7);
/****************************************************************************
*** Steal a RastPort ...and a ViewPort ***
****************************************************************************/
MagicRast=MagicWindow->RPort;
MagicView=(struct ViewPort *)ViewPortAddress(MagicWindow);
/****************************************************************************
*** Set display characteristics ***
****************************************************************************/
ShowTitle(MagicScreen,FALSE); /* No screen title */
SetRGB4(MagicView,0,0,0,8); /* Dark blue */
SetRGB4(MagicView,2,8,8,15); /* Light blue */
SetRGB4(MagicView,3,0,0,8);
SetRast(MagicRast,2); /* Fill screen using color reg. #2 */
SetAPen(MagicRast,3); /* Use color reg. #3 */
RectFill(MagicRast,38,9,602,189); /* Display a dark blue area */
/****************************************************************************
*** Well...do you believe it's true? ***
****************************************************************************/
SetAPen(MagicRast,2);
Move(MagicRast,179,20);
Text(MagicRast,"**** COMMODORE 64 BASIC V2 ****",31);
Move(MagicRast,145,34);
Text(MagicRast,"64K RAM SYSTEM 38911 BASIC BYTES FREE",38);
Move(MagicRast,44,53);
Text(MagicRast,"READY",5);
for(;;)
{
Delay(27); /* Time left before cursor says hello again */
SetAPen(MagicRast,2);
RectFill(MagicRast,44,55,52,62); /* Draw a cursor */
Delay(27); /* ...and wait... */
SetAPen(MagicRast,3);
RectFill(MagicRast,44,55,52,62); /* ...then kick it outa sight */
if(GetMsg(MagicWindow->UserPort)) break; /* Any user activities? */
}
DisplayAlert(RECOVERY_ALERT,&texttab,45); /* Yes, so let's panic */
GoHome("\f\n\n\n --> Magic Ceee says: ceeein' is beleeevin'...\n\n");
}
/****************************************************************************/
Tell_A_Lie(which_lie)
char *which_lie;
{
Write(Output(),which_lie,strlen(which_lie));
Delay(4*50);
}
/****************************************************************************/
OpenStuff()
{
if(!(IntuitionBase=(struct IntuitionBase *)
OpenLibrary("intuition.library",0)))
GoHome("Intuition won't open!\n");
if(!(GfxBase=(struct GfxBase *)
OpenLibrary("graphics.library",0)))
GoHome("Graphix won't open!\n");
if(!(MagicScreen=OpenScreen(&ns)))
GoHome("Can't open that damned screen!\n");
nw.Screen=MagicScreen;
if(!(MagicWindow=OpenWindow(&nw)))
GoHome("It's cold outside - Intuition won't open a window!\n");
}
/****************************************************************************/
GoHome(msg)
char *msg;
{
Write(Output(),msg,strlen(msg));
ClearPointer(MagicWindow);
if(MagicWindow) CloseWindow(MagicWindow);
if(MagicScreen) CloseScreen(MagicScreen);
if(GfxBase) CloseLibrary(GfxBase);
if(IntuitionBase) CloseLibrary(IntuitionBase);
}